デプロイサーキットブレーカーを無効な状態で ECS サービスを新規作成する方法を教えてください

デプロイサーキットブレーカーを無効な状態で ECS サービスを新規作成する方法を教えてください

Clock Icon2023.09.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

ECS サービスの新規作成で問題が発生し、デプロイサーキットブレーカーがトリガーされました。
原因調査のためサービスイベントメッセージを確認したところ、トリガーにより ECS サービスが削除され、イベントメッセージも確認できませんでした。
デプロイサーキットブレーカーを無効な状態で ECS サービスを作成する方法を教えてください。

hato-ecs-service のデプロイ中にエラーが発生しました
Resource handler returned message: "Error occurred during operation 'ECS Deployment Circuit Breaker was triggered'." (RequestToken: 5f40c577-3534-4b20-9599-0b0123456789, HandlerErrorCode: GeneralServiceException)

どう対応すればいいの?

サービス作成時の「デプロイ不具合の検出」からデプロイサーキットブレーカーを無効にしてください。
※「デプロイ不具合の検出」をクリックすると項目が表示されます。

デプロイで繰り返し問題が発生した場合、コスト発生を抑制するためデプロイサーキットブレーカーがトリガーされます。トリガーにより ECS サービスの作成が失敗状態となり、CloudFormation を通して ECS サービスの作成がロールバックされます。

ロールバックにより ECS サービスとその中に含まれるサービスイベントメッセージは削除されるため、トラブルシューティングなどで必要な場合は、デプロイサーキットブレーカーを無効な状態で ECS サービスを作成してください。

ただし、デプロイサーキットブレーカーが無効な場合も、約3時間で CloudFormation により ECS サービス作成がロールバックされる場合があるため、EventBridge を利用して CloudWatch Logs にイベントを保管することもご検討ください。

EventBridge を使用して AWS サービスのイベントをCloudWatch Logs に保管してみた | DevelopersIO

また、トラブルシューティングには ECS タスクの停止理由が有用な場合があります。ECS タスクの停止理由も約1時間で非表示となるため、あわせて保管をご検討ください。

参考資料

デプロイサーキットブレーカーを使用して障害を検出し、障害時にデプロイを自動的にロールバックするオプションを設定します。

サービスがタスク定義で希望する数のタスクを起動したことを確認するために、AWS CloudFormation は DescribeService API 呼び出しを繰り返します。これらの呼び出しは、状態が要求通りになるまで、サービスのステータス確認を続けます。この呼び出しプロセスには、最大で 3 時間かかります。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.